package code09集合.List;

import java.util.Arrays;
import java.util.LinkedList;

/**
 * @author 黄衡熙
 * @version 1.0
 */
public class Test08_LinkedList {
    public static void main(String[] args) {
        // 定义方式一:定义一个空集合
        LinkedList<String> list = new LinkedList<>();
        // 定义方式二:将一个Collection集合转换成LinkedList
        LinkedList<Integer> list2 = new LinkedList<>(Arrays.asList(1, 3, 4, 5, 7, 8, 9));
        System.out.println(list2);

        // LinkedList也属于List的实现类,也具有List中所有方法
        list.add("admin");
        list.add("jack");
        list.add("tom");
        list.add("lucy");
        list.add("lily");
        System.out.println(list);

        // 也具有队列的相关方法
        // 将元素添加到队头
        list.addFirst("john");
        // 将元素添加到队尾
        list.addLast("alex");
        System.out.println(list);

        // 获取开头与末尾的元素
        System.out.println(list.getFirst());
        System.out.println(list.getLast());

        // 删除开头与末尾的元素
        list.removeFirst();
        System.out.println(list);
        list.removeLast();
        System.out.println(list);

        // 取出并移除队头元素
        System.out.println(list.pollFirst());
        System.out.println(list);
        // 取出并移除队尾元素
        System.out.println(list.pollLast());
        System.out.println(list);

        // 获取队头与队尾的元素
        System.out.println(list.peekFirst());
        System.out.println(list.peekLast());
    }
}